package net.yeah.mickey_zhouyou.module.booklist.biz;

import javax.swing.JTree;

import net.yeah.mickey_zhouyou.module.booklist.component.CategoryTreeNode;

/**
 * 分类树管理。
 * 
 * @author Mickey
 * 
 */
public interface CategoryManager {
	/**
	 * 读取分类树
	 * 
	 * @return
	 */
	JTree loadTree();

	/**
	 * 在树中增加一个树根（一个树只有一个树根，但分类树的树根是隐藏的，所以第二级的节点是显示的树根）
	 * 
	 * @param tree
	 * @param rootText
	 *            新树根的显示文字
	 */
	void addTreeRoot(JTree tree, String rootText);

	/**
	 * 在parentNode下面加一个子节点
	 * 
	 * @param tree
	 * @param parentNode
	 * @param childNodeText
	 *            子节点的显示文字
	 */
	void addChild(JTree tree, CategoryTreeNode parentNode, String childNodeText);

	/**
	 * 删除此树的被选择的节点(代码中控制只能选择一个节点)
	 * 
	 * @param tree
	 */
	void delSelectedNode(JTree tree);

	/**
	 * 修改一个节点的显示文字
	 * 
	 * @param tree
	 * @param node
	 * @param text
	 */
	void changeNodeText(JTree tree, CategoryTreeNode node, String text);
}
